#e
#Title[zNulgĂˁ[v]
#Text[lł炵ҁB]
#ScriptVersion[2]

script_enemy_main
{
	let scroll=0;
	let flag=0;
	let cx=GetCenterX();
	let cy=GetCenterY();
	let boss=GetCurrentScriptDirectory~"img\boss7-2.png";
	let eye=GetCurrentScriptDirectory~"img\bg7-1-2.png";
	let asa=GetCurrentScriptDirectory~"img\bg7-2-2.png";
	LoadUserShotData(GetCurrentScriptDirectory~"shot.txt");
	@Initialize
	{
		SetScore(30000);
		SetLife(200);
		SetDamageRate(10,0);
		SetMovePosition02(cx,cy,60);
		SetTimer(80);
		SetInvincibility(60);
		LoadGraphic(boss);
		LoadGraphic(eye);
		LoadGraphic(asa);
		LoadGraphic(GetCurrentScriptDirectory~".\img\shot\bullet.png");
		shottask;
		drawtask;
		bombtask;
		CutIn(YOUMU,"zNulgĂˁ[v",0,0,0,0,0);
	}
	@MainLoop
	{
		yield;
	}
	@Finalize
	{
		loop(16)
		{
			CreateItem(ITEM_SCORE,GetX+rand(-30,30),GetY+rand(-30,30));
		}
		DeleteGraphic(boss);
		DeleteGraphic(eye);
		DeleteGraphic(asa);
		DeleteGraphic(GetCurrentScriptDirectory~".\img\shot\bullet.png");
	}
	@DrawLoop
	{
		SetTexture(boss);	
		if(flag==1)
		{
			SetGraphicRect(52,0,81,63);
		}
		else if(flag==2)
		{
			SetGraphicRect(24,0,52,63);
		}
		else
		{
			SetGraphicRect(0,0,24,63);
		}
		SetGraphicScale(1,1);
		SetGraphicAngle(0,0,0);
		DrawGraphic(GetX,GetY);
	}
	@BackGround
	{
		SetColor(128,128,128);
		SetTexture(eye);	
		SetGraphicRect(0,0,384,448);
		SetAlpha(255);
		SetGraphicScale(1,1);
		SetGraphicAngle(0,0,0);
		DrawGraphic(cx,cy);
		SetColor(255,255,255);
		SetTexture(asa);	
		SetGraphicRect(0,0,888,189*5);
		SetAlpha(64);
		SetGraphicScale(0.5,0.75);
		SetGraphicAngle(0,0,0);
		DrawGraphic(cx+scroll,cy);
		DrawGraphic(cx+scroll-444,cy);
		if(scroll>444)
		{
			scroll=0;
		}
	}
	task shottask
	{
		wait(180);
		loop
		{
			let angle=rand(0,360);
			loop(9)
			{
				blue(angle+5,0);
				angle+=36;
			}
			blue(angle+5,1);
			angle+=36;
			wait(30);
			loop(9)
			{
				red(angle);
				angle+=36;
			}
			wait(180);
			let angle=0;
			let s=0;
			while(angle<360)
			{
				CreateShotA(s,GetX,GetY,0);
				SetShotDataA(s,0,9,angle,12,0,0,71);
				SetShotKillTime(s,30);
				FireShot(s);
				angle+=6;
			}
			wait(120);
		}
	}
	task drawtask
	{
		let x=0;
		loop
		{	
			if(GetX>x+0.5)
			{
				flag=1;
			}
			else if(GetX<x-0.5)
			{
				flag=2;
			}
			else
			{
				flag=0;
			}
			x=GetX;
			scroll++;
			yield;
		}
	}
	task bombtask
	{
		loop
		{
			if(OnBomb)
			{
				SetAlpha(64);
				SetDamageRate(0,0);
			}
			else
			{
				SetAlpha(255);
				SetDamageRate(10,0);
				SetCollisionA(GetX(),GetY(),24);
				SetCollisionB(GetX(),GetY(),24);
			}
			yield;
		}
	}
	task red(let angle)
	{
		let obj = Obj_Create(OBJ_SHOT);
		let speed=4;
		let s=0;
		Obj_SetPosition(obj,GetX, GetY);
		Obj_SetSpeed(obj, speed);
		Obj_SetAngle(obj, angle);
		ObjShot_SetGraphic(obj, 31);
		ObjShot_SetDelay(obj, 0);
		loop(180)
		{
			Obj_SetSpeed(obj, speed);
			if(speed>0){speed-=0.05}
			yield;
		}
		let angle=0;
		while(!Obj_BeDeleted(obj)&&angle<360)
		{
			CreateShotA(s,Obj_GetX(obj),Obj_GetY(obj),0);
			SetShotDataA(s,0,8,angle,12,0,0,71);
			SetShotKillTime(s,30);
			FireShot(s);
			angle+=6;
		}
		Obj_Delete(obj);
	}
	task blue(let angle,let solo)
	{
		let obj = Obj_Create(OBJ_SHOT);
		let speed=4;
		let s=0;
		Obj_SetPosition(obj,GetX, GetY);
		Obj_SetSpeed(obj, speed);
		Obj_SetAngle(obj, angle);
		ObjShot_SetGraphic(obj, 35);
		ObjShot_SetDelay(obj, 0);
		loop(210)
		{
			Obj_SetSpeed(obj, speed);
			if(speed>0){speed-=0.05}
			yield;
		}
		if(solo==0)
		{
			let count=0;
			while(!Obj_BeDeleted(obj)&&count<30)
			{
				CreateShot01(Obj_GetX(obj),Obj_GetY(obj),2,angle-90,15,0);
				angle+=6;
				count++;
			}
			Obj_Delete(obj);
		}
		if(solo==1){ObjShot_FadeDelete(obj);}
	}
	function wait(w) 
	{
		loop(w)
		{
			yield;
		}
	}
}